home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / t_os / f_list / f_list.bas < prev    next >
BASIC Source File  |  1993-11-30  |  16KB  |  477 lines

  1. 1000 '1992/06/23  File Name Lister  by 尋燐・ルナ
  2. 1010 '1992/12/23  完成バージョン  V2.04
  3. 1020 '1993/07/28  最新バージョン  V2.05
  4. 1030 '1991/OH!FM TOWNS 新創刊 NO.1 p160 DIR.REX  伊藤哲史作 使用
  5. 1040 CLEAR ,,,,512
  6. 1050 DEFSTR A
  7. 1060 :
  8. 1070 GOSUB *初期化
  9. 1080 GOSUB *マシン語
  10. 1090 GOSUB *項目設定
  11. 1100 *MLOOP
  12. 1110 GOSUB *初期化2
  13. 1120 GOSUB *画面
  14. 1130 GOSUB *入力
  15. 1140 GOSUB *入力変換
  16. 1150 GOSUB *WINDO2
  17. 1160 I=14 :GOSUB *W2
  18. 1170 OPEN "O",#1,OF_N$
  19. 1180   GOSUB *MAIN
  20. 1190 CLOSE
  21. 1200 I=15 :GOSUB *W2
  22. 1210 :A=INPUT$(1) 
  23. 1220 :IF A="R" OR A="r" THEN *MLOOP 
  24. 1230 *終了
  25. 1240 SYSTEM
  26. 1250 :
  27. 1260 '----SUB----
  28. 1270 *初期化
  29. 1280 DEF FNFILE$(F$)=F$+CHR$(0)+STRING$(18-LEN(F$),"a")
  30. 1290 DMAX=9             :'##ディレクトリの最大深さ-1
  31. 1300 DIM F_N$(DMAX,400) :'##深さ別のDIR名LIST
  32. 1310 DIM C_N(DMAX)      :'##各深さのDIRの位置
  33. 1320 RETURN
  34. 1330 :
  35. 1340 *初期化2
  36. 1350  FCT=0  :FCT1=0:FCT2=0 :DIRC=0 
  37. 1360 '該当F数:総F数 :特殊F数:総DIR数
  38. 1370  DIR=0    :PASS$="\"
  39. 1380 'DIRの深さ:パス     
  40. 1390 F$=""  :'##ファイル名のワーク
  41. 1400 S=0    :'##1=DIR検索 / 0=ファイル検索
  42. 1410 RETURN
  43. 1420 :
  44. 1430 *項目設定
  45. 1440 'ウインド1
  46. 1450 W1C=13       :'##ウインド1の最大項目数
  47. 1460 DIM AW1(W1C) :'##項目名
  48. 1470 DIM SW1(W1C) :'##設定1
  49. 1480 DIM AW11(W1C):'##設定2
  50. 1490 RESTORE *設定DATA :FOR I=0 TO W1C :READ AW1(I),SW1(I),AW11(I) :NEXT
  51. 1500 'ウインド2
  52. 1510 DIM AH(W1C+2)  :'##HELPメッセージ
  53. 1520 RESTORE *HDATA :FOR I=0 TO W1C+2 :READ AH(I) :NEXT
  54. 1530 RETURN
  55. 1540 :
  56. 1550 *マシン語
  57. 1560 LOADM "DIR.REX",0
  58. 1570 MC1&=0 :MC2&=&HBB   :'##マシン語コールアドレス(1,2)
  59. 1580 FLAG&=1
  60. 1590 RETURN
  61. 1600 :
  62. 1610 '--------
  63. 1620 *画面
  64. 1630 SCREEN@ 0 :CLS :WIDTH 80,20
  65. 1640 PALETTE 9,[100,100,120]
  66. 1650 PALETTE 10,[180,180,180]
  67. 1660 PALETTE 11,[0,0,120]
  68. 1670 LINE (0,0)-(639,479),PSET,%9,BF
  69. 1680 SYMBOL (30,10),"ファイル   リスター",2,1,6,,,15
  70. 1690 SYMBOL (170,4),"N",1,1,5,,,7 :SYMBOL (180,9),"A",1,1,5,,,7
  71. 1700 SYMBOL (190,14),"M",1,1,5,,,7 :SYMBOL (200,19),"E",1,1,5,,,7
  72. 1710 SYMBOL (350,10),"V2.05",1,1,6,,,1,2
  73. 1720 SYMBOL (450,10),"HI-CCC",1,1,4,,,7
  74. 1730 SYMBOL (450,30),"製作者: 尋燐・ルナ",1,1,4,,,1
  75. 1740 LINE (35,40)-(435,40),PSET,%11
  76. 1750 CONNECT (435,5)-(405,60)-(620,60)-(610,50)-(610,70),%11
  77. 1760 GOSUB *WIND1
  78. 1770 X0=400 :Y0=105 :X1=600 :Y1=244 :GOSUB *ウインド
  79. 1780 COLOR 4 :LOCATE 57,4 :PRINT "メッセージ"
  80. 1790 X0=400 :Y0=298 :X1=600 :Y1=455 :GOSUB *ウインド
  81. 1800 COLOR 4 :LOCATE 57,12 :PRINT "処 理 経 過"
  82. 1810 COLOR 5 :LOCATE 51,13 :PRINT "該当File数   = ";FCT
  83. 1820 LOCATE 51,14 :PRINT "総ファイル数 = ";FCT1
  84. 1830 LOCATE 51,15 :PRINT "総DIR数   = ";DIRC
  85. 1840 LOCATE 51,16 :PRINT "特殊File数   = ";FCT2
  86. 1850 LOCATE 51,17 :PRINT "PASS  [ 1         2 ]"
  87. 1860 LOCATE 51,18 :PRINT "DIRの深さ :"
  88. 1870 RETURN
  89. 1880 :
  90. 1890 *ウインド
  91. 1900 CONNECT (X0,Y1)-(X0,Y0)-(X1,Y0),%10
  92. 1910 CONNECT (X0-1,Y1)-(X0-1,Y0-1)-(X1+1,Y0-1),%10
  93. 1920 CONNECT (X0,Y1)-(X1,Y1)-(X1,Y0),0
  94. 1930 CONNECT (X0-1,Y1+1)-(X1+1,Y1+1)-(X1+1,Y0-1),0
  95. 1940 X0=X0+30 :X1=X0+140 :Y0=Y0-14 :Y1=Y0+24
  96. 1950 LINE (X0,Y0)-(X1,Y1),PSET,%9,BF
  97. 1960 CONNECT (X0,Y1)-(X0,Y0)-(X1,Y0),%10
  98. 1970 CONNECT (X0-1,Y1-12)-(X0-1,Y0+1)-(X1+1,Y0+1),%10
  99. 1980 CONNECT (X0,Y1)-(X1,Y1)-(X1,Y0+1),0
  100. 1990 CONNECT (X1+1,Y1-12)-(X1+1,Y0+1),0
  101. 2000 RETURN
  102. 2010 :
  103. 2020 *WIND1
  104. 2030 X0=50 :Y0=82 :X1=350 :Y1=450 :GOSUB *ウインド
  105. 2040 COLOR 4 :LOCATE 13,3 :PRINT AW1(0)
  106. 2050 FOR I=1 TO W1C
  107. 2060  X0=60 :Y0=93+I*24 :X1=190 :Y1=90+(I+1)*24
  108. 2070  CONNECT (X0,Y1)-(X0,Y0)-(X1,Y0),%10
  109. 2080  CONNECT (X0,Y1)-(X1,Y1)-(X1,Y0),0
  110. 2090  COLOR 6 :LOCATE 9,4+I :PRINT AW1(I);
  111. 2100  IF SW1(I)<0  THEN LOCATE 27,4+I :PRINT AW11(I); 
  112. 2110  IF SW1(I)=-2 THEN PRINT ":"
  113. 2120  IF SW1(I)>=0 THEN LOCATE 25,4+I :PRINT "   する   しない" 
  114. 2130  GOSUB *SW1
  115. 2140 NEXT
  116. 2150 RETURN
  117. 2160 :
  118. 2170 *SW1
  119. 2180 IF SW1(I)>=0 THEN 2270
  120. 2190 IF SW1(I)<-2 OR SW1(I)>1 THEN RETURN
  121. 2200 IX0=205 :IY0=93+I*24 :IY1=90+(I+1)*24
  122. 2210 IF SW1(I)=-1  THEN IX1=IX0+120
  123. 2220 IF SW1(I)=-2  THEN IX1=IX0+30
  124. 2230 IF SW1(11)=0 AND (I=5 OR I=6) THEN I0=9 :I1=9 ELSE I0=0 :I1=10
  125. 2240  CONNECT (IX0,IY1)-(IX0,IY0)-(IX1,IY0),%I0 :CONNECT (IX0,IY1)-(IX1,IY1)-(IX1,IY0),%I1
  126. 2250 RETURN
  127. 2260 :
  128. 2270 IX0=210 :IX1=274 :IY0=93+I*24 :IY1=90+(I+1)*24 
  129. 2280 IF SW1(I) THEN 2340
  130. 2290  CONNECT (IX1,IY1)-(IX1,IY0)-(IX1+60,IY0),0 
  131. 2300  CONNECT (IX1,IY1)-(IX1+60,IY1)-(IX1+60,IY0),%10
  132. 2310  CONNECT (IX0,IY1)-(IX0,IY0)-(IX0+57,IY0),%9 
  133. 2320  CONNECT (IX0,IY1)-(IX0+57,IY1)-(IX0+57,IY0),%9
  134. 2330  RETURN
  135. 2340 :CONNECT (IX0,IY1)-(IX0,IY0)-(IX0+57,IY0),0 
  136. 2350  CONNECT (IX0,IY1)-(IX0+57,IY1)-(IX0+57,IY0),%10
  137. 2360  CONNECT (IX1,IY1)-(IX1,IY0)-(IX1+60,IY0),%9 
  138. 2370  CONNECT (IX1,IY1)-(IX1+60,IY1)-(IX1+60,IY0),%9
  139. 2380  RETURN
  140. 2390 :
  141. 2400 *設定DATA
  142. 2410 DATA "各 種 設 定"   ,-3,""
  143. 2420 DATA "検索ドライブ"  ,-2,"D"
  144. 2430 DATA " 〃 条件"      ,-1,"*.*"
  145. 2440 DATA "出力先Drive名" ,-2,"D"
  146. 2450 DATA "  〃  File名"  ,-1,"リスト.TXT"
  147. 2460 DATA "Copy先Drive名" ,-2,"A"
  148. 2470 DATA "  〃  DIR名"   ,-1,"\BUCKUP\"
  149. 2480 DATA "1・分離表示"    , 0,""
  150. 2490 DATA "2・フルパス表示", 1,""
  151. 2500 DATA "3・属性の表示"  , 0,""
  152. 2510 DATA "4・DIRも表示"   , 0,""
  153. 2520 DATA "5・COPYコマンド", 0,""
  154. 2530 DATA "6・DELコマンド" , 0,""
  155. 2540 DATA "7・特殊FILE検索", 0,""
  156. 2550 :
  157. 2560 *WINDO2
  158. 2570 I=0
  159. 2580 GOSUB *W2
  160. 2590 PRINT SPACE$(24)
  161. 2600 A=INPUT$(1)
  162. 2610  IF A="N" OR A="n" THEN *終了
  163. 2620  IF A=" " THEN RUN
  164. 2630  IF A="O" OR A="o" THEN *OMAKE
  165. 2640  IF A<>"Y" AND A<>"y" THEN 2600
  166. 2650 RETURN
  167. 2660 :
  168. 2670 *WIND2
  169. 2680 I=NO
  170. 2690 GOSUB *W2
  171. 2700 PRINT "<'ESCキー'で実行・取消>"
  172. 2710 RETURN
  173. 2720 :
  174. 2730 *W2
  175. 2740 COLOR 7
  176. 2750 A=AH(I)+SPACE$(40)
  177. 2760 FOR I0=1 TO 4
  178. 2770  LOCATE 52,4+I0
  179. 2780  PRINT MID$(A,I0*22-21,22)
  180. 2790 NEXT
  181. 2800 COLOR 5 :LOCATE 51,9 
  182. 2810 RETURN
  183. 2820 :
  184. 2830 *HDATA
  185. 2840 DATA "Y ・・・・ 検索を開始するN ・・・・ 中止する      SPC・・・・ 設定をし直す O ・・・・ おまけ"
  186. 2850 DATA "検索先のドライブ名を←→もしくはA~Qキーで選んでください。"
  187. 2860 DATA "検索条件をワイルドカード等で指定してください。*.*で全てのリストがでます。"
  188. 2870 DATA "リスト出力先のドライブ名を←→もしくはA~Qキーで選んでください。"
  189. 2880 DATA "リストのファイル名を入力して下さい。カレントディレクトリにセーブします。"
  190. 2890 DATA "COPYコマンド時のCOPY先ドライブ名を←→もしくはA~Qキーで選んでください。"
  191. 2900 DATA "COPY時のCOPY先ディレクトリを入力してください。例(\BUCKUP\)   (\)等DIR の作成はしない。"
  192. 2910 DATA "パスとファイル名を分離する。プログラム中で使用する時便利。他の条件より最優先する。"
  193. 2920 DATA "ファイル名をフルパス付きでリストする。[しない]だとファイル名のみの出力。"
  194. 2930 DATA "リストに属性を付ける。[advshr]の有無がわかる。詳しくは何かの本を見てください。"
  195. 2940 DATA "リストにサブディレクトリ名も表示する。DISK内の構造を知るのに便利...かも?"
  196. 2950 DATA "COPYコマンドを付けてBAT FILEにする。COPY先は同ディレクトリ内なので同FILE名は消される。"
  197. 2960 DATA "DEL コマンドを付ける。6・も指定するとCOPY後DEL するBAT FILEを作成する。"
  198. 2970 DATA "特殊ファイル(隠し・システム)も検索の対象にするかどうか。リードオンリーは含まない。"
  199. 2980 :
  200. 2990 DATA "<只今、実行中です!>CDだと10分以上掛かることがあります。しばらくお待ち下さい。"
  201. 3000 DATA "<終了いたしました。>何かキーを押すとプログラムを終了いたします。 R=再実行"
  202. 3010 :
  203. 3020 *入力
  204. 3030 NO=1 :ONO=10
  205. 3040 *IN0
  206. 3050  IF NO<1 THEN NO=W1C
  207. 3060  IF NO>W1C THEN NO=1
  208. 3070  GOSUB *WIND2
  209. 3080  LOCATE 9,4+ONO :COLOR 6 :PRINT AW1(ONO)
  210. 3090  LOCATE 9,4+NO :COLOR 5 :PRINT AW1(NO)
  211. 3100 ONO=NO
  212. 3110 *IN1
  213. 3120 A=INPUT$(1)
  214. 3130  IF A=CHR$(27) THEN RETURN
  215. 3140  IF A=" " THEN CLOSE:END
  216. 3150  IF A=CHR$(&H1F) THEN NO=NO+1 :GOTO *IN0
  217. 3160  IF A=CHR$(&H1E) THEN NO=NO-1 :GOTO *IN0
  218. 3170  IF SW1(NO)=-2 THEN *IN3  '##ドライブ名
  219. 3180  IF SW1(NO)=-1 THEN *IN4  '##ファイル名
  220. 3190  IF SW1(NO)>=0 THEN *IN2  '##設定ON-OFF
  221. 3200 GOTO *IN0
  222. 3210 :
  223. 3220 *IN2
  224. 3230 IF A<>CHR$(&H1C) AND A<>CHR$(&H1D) THEN *IN1 
  225. 3240 SW1(NO)=-(SW1(NO)=0)
  226. 3250 IF SW1(7) THEN SW1(8)=1 :SW1(9)=0 :SW1(10)=0 :SW1(11)=0 :SW1(12)=0
  227. 3260 IF SW1(11) OR SW1(12) THEN SW1(8)=1 :SW1(9)=0 :SW1(10)=0 
  228. 3270 FOR I=1 TO W1C :GOSUB *SW1 :NEXT :GOTO *IN1
  229. 3280 *IN3
  230. 3290 IF A<="S" AND A>="A" THEN A0=A :GOTO 3340 
  231. 3300 IF A<="s" AND A>="a" THEN A0=CHR$(ASC(A)-&H20) :GOTO 3340 
  232. 3310 A0=CHR$(ASC(AW11(NO))-(A=CHR$(&H1C))+(A=CHR$(&H1D)))
  233. 3320 IF A0<"A" THEN A0="Q"
  234. 3330 IF A0>"S" THEN A0="A"
  235. 3340 AW11(NO)=A0 :COLOR 6 :LOCATE 27,4+NO :PRINT AW11(NO);":" 
  236. 3350 GOTO *IN1
  237. 3360 *IN4
  238. 3370 IF A<>CHR$(13) AND A<>CHR$(&H1C) THEN *IN1
  239. 3380 COLOR 7 :LOCATE 27,4+NO
  240. 3390 LINE INPUT "",A0
  241. 3400 IF A0="" THEN *IN1
  242. 3410 COLOR 6 :LOCATE 27,4+NO
  243. 3420 IF LEN(A0)>12 THEN A0=LEFT$(A0,12)
  244. 3430 AW11(NO)=A0 :PRINT A0+SPACE$(13)
  245. 3440 GOTO *IN1
  246. 3450 :
  247. 3460 *入力変換
  248. 3470 DRIVE$=AW11(1)+":" :'##検索DRIVE
  249. 3480 WILD$=AW11(2)      :'##検索条件
  250. 3490  IF AW11(3)="S" THEN AW11(3)="SCRN" 
  251. 3500 OF_N$=AW11(3)+":\"+AW11(4) :'##出力FAIL名
  252. 3510 CP_N$=AW11(5)+":"+AW11(6)  :'##COPY先名
  253. 3520 FRG1=SW1(7) :'##分離表示
  254. 3530 FRG2=SW1(8) :'##フルパスの表示
  255. 3540 FRG3=SW1(9) :'##属性の表示
  256. 3550 FRG4=SW1(10) :'##リストにDIRも表示する
  257. 3560 FRG5=SW1(11) :'##COPYコマンドの付加
  258. 3570 FRG6=SW1(12) :'##DELコマンドの付加
  259. 3580 FRG7=SW1(13) :'##特殊ファイルの検索
  260. 3590 :
  261. 3600 IF FRG1 THEN FRG2=1 :FRG3=0 :FRG4=0 :FRG5=0 :FRG6=0
  262. 3610 IF FRG5 OR FRG6 THEN FRG2=1 :FRG3=0 :FRG4=0 
  263. 3620 RETURN
  264. 3630 :
  265. 3640 '-----
  266. 3650 *MAIN
  267. 3660 COLOR 7
  268. 3670 SHELL DRIVE$
  269. 3680 SHELL "CHDIR \"
  270. 3690 GOSUB *DIR_CALL
  271. 3700 LOCATE 65,13 :PRINT FCT
  272. 3710 LOCATE 65,14 :PRINT FCT1
  273. 3720 LOCATE 65,15 :PRINT DIRC
  274. 3730 LOCATE 65,16 :PRINT FCT2
  275. 3740  IF C_N(DIR)=0 THEN 3800 
  276. 3750 '##DIRが有れば子DIRに移る
  277. 3760   SHELL "CHDIR "+F_N$(DIR,C_N(DIR))
  278. 3770   DIR=DIR+1 :LOCATE 63+DIR,18 :PRINT "* "
  279. 3780   GOTO 3690
  280. 3790 '##DIRが無ければ親に移る
  281. 3800   DIR=DIR-1 :LOCATE 63+DIR,18 :PRINT "* "
  282. 3810   IF DIR<0 THEN 3860
  283. 3820   C_N(DIR)=C_N(DIR)-1
  284. 3830   SHELL "CHDIR .." 
  285. 3840   IF C_N(DIR)=0 THEN 3800 
  286. 3850   GOTO 3760
  287. 3860 LOCATE 62,18 :PRINT " 終了"
  288. 3870 RETURN 
  289. 3880 :
  290. 3890 '----1ディレクトリ内の検索----
  291. 3900 *DIR_CALL
  292. 3910 :
  293. 3920 PASS$="\" :I=0
  294. 3930  IF I<DIR THEN PASS$=PASS$+F_N$(I,C_N(I))+"\" :I=I+1 :GOTO 3930
  295. 3940 S=0:F$=FNFILE$(WILD$)
  296. 3950   LOCATE 62,17 :PRINT "● ―"
  297. 3960   GOSUB *M_CALL1
  298. 3970   GOSUB *M_CALL2 
  299. 3980 S=1:F$=FNFILE$("*.*")
  300. 3990 DCT=0  :'##ディレクトリカウンタ
  301. 4000   LOCATE 62,17 :PRINT "― ●"
  302. 4010   GOSUB *M_CALL1
  303. 4020   GOSUB *M_CALL2 
  304. 4030 C_N(DIR)=DCT
  305. 4040   LOCATE 62,17 :PRINT "― ― "
  306. 4050 RETURN
  307. 4060 :
  308. 4070 '----マシン語のコール----
  309. 4080 *M_CALL1
  310. 4090 FLAG&=1
  311. 4100 CALLM MC1&,VARPTR(F$),VARPTR(FLAG&)
  312. 4110  IF FLAG&<>0 THEN GOSUB *F_OUT
  313. 4120 RETURN
  314. 4130 :
  315. 4140 *M_CALL2
  316. 4150 CALLM MC2&,VARPTR(F$),VARPTR(FLAG&)
  317. 4160  IF FLAG&<>0 THEN GOSUB *F_OUT :GOTO *M_CALL2
  318. 4170 RETURN
  319. 4180 :
  320. 4190 '----データの分離----
  321. 4200 *F_OUT
  322. 4210 A0=RIGHT$(F$,6)  :'##情報
  323. 4220 A=LEFT$(F$,8)    :'##ファイル名
  324. 4230 :I=1
  325. 4240 :IF MID$(A,I,1)<>" " AND I<=8 THEN I=I+1 :GOTO 4240
  326. 4250 :A1=LEFT$(A,I-1)
  327. 4260 A=MID$(F$,10,3)  :'##拡張子
  328. 4270 :IF A="   " THEN A2="" :GOTO 4310
  329. 4280 :I=1
  330. 4290 :IF MID$(A,I,1)<>" " AND I<=3 THEN I=I+1 :GOTO 4290
  331. 4300 :A2="."+LEFT$(A,I-1)
  332. 4310 IF A1="." OR A1=".." THEN RETURN
  333. 4320 IF MID$(A0,3,1)="v" THEN RETURN
  334. 4330 A3=A1+A2  :'##新F名
  335. 4340 :
  336. 4350 IF S THEN *FSD ELSE *FNAME
  337. 4360 :
  338. 4370 '----ディレクトリの検索----
  339. 4380 *FSD
  340. 4390 IF MID$(A0,2,1)<>"d" THEN FCT1=FCT1+1:RETURN  :'##総F数
  341. 4400 DIRC=DIRC+1  :'##総DIR数
  342. 4410 DCT=DCT+1
  343. 4420 F_N$(DIR,DCT)=A1
  344. 4430 AP=""
  345. 4440 IF FRG3 THEN AP=AP+A0+" "  :'##属性表示
  346. 4450 IF FRG2 THEN AP=AP+PASS$   :'##フルパス表示
  347. 4460 IF FRG4 THEN PRINT #1,AP+A3
  348. 4470 RETURN
  349. 4480 :
  350. 4490 '----ファイル名の検索----
  351. 4500 *FNAME
  352. 4510 IF MID$(A0,2,1)="d" THEN RETURN
  353. 4520 IF MID$(A0,4,1)="s" OR MID$(A0,5,1)="h" THEN FCT2=FCT2+1 :IF FRG7=0 THEN RETURN 
  354. 4530 FCT=FCT+1  :'##該当F数
  355. 4540 AP="" :A4="" :A5=""
  356. 4550 IF FRG3 THEN AP=AP+A0+" "  :'##属性表示
  357. 4560 IF FRG2 THEN AP=AP+PASS$   :'##フルパス表示
  358. 4570 IF FRG5 THEN A4="COPY "+DRIVE$ :A5=" "+CP_N$ :'##COPYコマンドの付加
  359. 4580 :
  360. 4590 IF FRG1 THEN PRINT #1,AP :PRINT #1,A3 :RETURN
  361. 4600 IF FRG6=0 OR (FRG5*FRG6) THEN PRINT #1,A4+AP+A3+A5
  362. 4610 IF FRG6 THEN PRINT #1,"DEL "+DRIVE$+AP+A3
  363. 4620 RETURN
  364. 4630 :
  365. 4640 '------  E  N  D  --------
  366. 4650 :
  367. 4660 *OMAKE
  368. 4670 KEY 5,"リスト.TXT"
  369. 4680 SCREEN@ 0 :CLS :COLOR 5
  370. 4690 PRINT "***  FILE NAME LISTER  ***"
  371. 4700 PRINT "***              おまけ  コーナー         ***"
  372. 4710 PRINT "***           1993/01/05 by 尋燐・ルナ      ***"
  373. 4720 PRINT 
  374. 4730 COLOR 7
  375. 4740 PRINT " 1 ・・・・・ フルパスリストにドライブ番号を付ける。"
  376. 4750 PRINT " 2 ・・・・・ TIFファイルを連続して見る。"
  377. 4760 PRINT " 3 ・・・・・ 注意事項"
  378. 4770 PRINT " 4 ・・・・・ メインプログラムに戻る。"
  379. 4780 PRINT 
  380. 4790 PRINT " <どれを選択しますか?> "
  381. 4800 A=INPUT$(1)
  382. 4810 :IF A="1" THEN *ADD
  383. 4820 :IF A="2" THEN *TIF 
  384. 4830 :IF A="3" THEN *注意 
  385. 4840 :IF A="4" THEN RUN
  386. 4850 :GOTO 4800
  387. 4860 :
  388. 4870 *TIF
  389. 4880 PRINT :PRINT :PRINT :COLOR 5 
  390. 4890 PRINT "***   簡易TIFファイル表示   ***"
  391. 4900 PRINT "***     by 尋燐・ルナ        ***"
  392. 4910 PRINT "注)SCREEN@ 0-3 以外の画面モードには対応してません。  "
  393. 4920 PRINT :COLOR 7 
  394. 4930 LINE INPUT ">リストの名は(ドライブ番号からフルパスで)_ ";F$
  395. 4940 PRINT "-リストにドライブ番号が含まれている時はret.のみ-"
  396. 4950 INPUT ">表示画像ファイルの入っているドライブは_ ";AD
  397. 4960 IF LEN(AD)>0 THEN AD=LEFT$(AD,1)+":" ELSE AD=""
  398. 4970 DIM FF$(5000)
  399. 4980 MAX=1
  400. 4990 OPEN "I",#1,F$
  401. 5000   IF EOF(1)=0 THEN LINE INPUT #1,FF$(MAX) :MAX=MAX+1 :GOTO 5000
  402. 5010 CLOSE
  403. 5020 PRINT "ファイルは ";MAX;"ありました。"
  404. 5030 ON ERROR GOTO 5130
  405. 5040 S=0 :SCREEN@ 0 :CLS
  406. 5050 FOR I=1 TO MAX
  407. 5060   C=1
  408. 5070   LOAD@ AD+FF$(I)
  409. 5080   LOCATE 0,0 :PRINT I
  410. 5090 NEXT
  411. 5100 ON ERROR GOTO 0
  412. 5110 WAIT 200
  413. 5115 ERASE FF$
  414. 5120 GOTO *OMAKE
  415. 5130 '-err
  416. 5140 IF NOT(ERL=5070 AND ERR=112) THEN RESUME NEXT
  417. 5150 C=C+1 :LOCATE 0,0 :PRINT "ERR!"
  418. 5160 IF C=4 THEN RESUME NEXT
  419. 5170 S=S-1 :IF S=-1 THEN S=2
  420. 5180  IF S=0 THEN SCREEN@ 0
  421. 5190  IF S=1 THEN SCREEN@ 1
  422. 5200  IF S=2 THEN SCREEN@ 2
  423. 5210 RESUME 
  424. 5220 :
  425. 5230 *ADD
  426. 5240 AZ="ZZZZZZZZ.ZZZ"
  427. 5250 PRINT :PRINT :PRINT :COLOR 5 
  428. 5260 PRINT "***   ドライブ番号の付加    ***"
  429. 5270 PRINT "***      by 尋燐・ルナ       ***"
  430. 5280 PRINT :COLOR 7 
  431. 5290 LINE INPUT ">変更するリストのフルパスは、(ファイル名は省く)_ ";AP
  432. 5300 LINE INPUT ">                ファイル名は、_ ";AF
  433. 5310 LINE INPUT ">付加するドライブ名は、_ ";AD
  434. 5320 AD=LEFT$(AD,1)+":"
  435. 5330 PRINT "...実行中!"
  436. 5340 PRINT "...古いファイル名の変更"
  437. 5350 NAME AP+AF AS AZ
  438. 5360 PRINT "...リストの書換え" 
  439. 5370 PRINT ">";
  440. 5380 OPEN "I",#1,AP+AZ
  441. 5390  OPEN "O",#2,AP+AF
  442. 5400    LINE INPUT #1,A
  443. 5410    A=AD+A :PRINT ".";
  444. 5420    PRINT #2,A
  445. 5430    IF EOF(1)=0 THEN 5400 
  446. 5440  CLOSE #2
  447. 5450 CLOSE #1
  448. 5460 KILL AP+AZ
  449. 5470 PRINT :PRINT "...終了しました"
  450. 5480 WAIT 100
  451. 5490 GOTO *OMAKE
  452. 5500 :
  453. 5510 *注意
  454. 5520 CLS :COLOR 5
  455. 5530 PRINT "***  FILE NAME LISTER  ***"
  456. 5540 PRINT "***     注 意 事 項        ***"
  457. 5550 PRINT "***        by 尋燐・ルナ        ***"
  458. 5560 PRINT :COLOR 7 
  459. 5570 PRINT "<この度このプログラムを使用していただき誠に有り難うございます。"
  460. 5580 PRINT "   以下に簡単な使用上の注意をあげておきます。>"
  461. 5590 PRINT 
  462. 5600 PRINT "・当プログラムは恐ろしいほどエラーチェックをしておりません。"
  463. 5610 PRINT "  (ドライブの確認、ファイル名、ワイルドカード等)"
  464. 5620 PRINT "  サイドワーク(ファイル操作)等で確認してください。"
  465. 5630 PRINT "・ESCキーを押したかとの選択は仮名、全角になっているとそのまま終了してし"
  466. 5640 PRINT "  しまいます。英大、英小で選択してください。"
  467. 5650 PRINT "・CDの検索には時間が掛かります。特にGNUは超最悪です。23736ファイル"
  468. 5660 PRINT "  約30分かかります。他は大体10分位.....かな?"
  469. 5670 PRINT "・裏技としてリスト出力先にSを指定するとスクリーンに表示されます。"
  470. 5680 PRINT "  但しテスト用なので画面が乱れます。"
  471. 5690 PRINT "・裏技2としてリスト出力をルートディレクトリでなくサブDIRに出来ます。"
  472. 5700 PRINT "  ファイル名の欄にフルパスで記入してください。はみ出すけど.."
  473. 5710 A=INPUT$(1)
  474. 5720 GOTO *OMAKE
  475. 5730 :
  476. 5740 '---------------  e n d --------------
  477.